public function addRole($role)
    {
        if (!$role instanceof Role) {
            throw new InvalidArgumentException('addRole takes a Role object as the parameter');
        }

        if (!$this->hasRole($role->getRole())) {
            $this->roles->add($role);
        }

        return $this;
    }