public function setPassword($password)
    {
        if (!is_null($password) && !is_string($password)) {
            $argumentType = (is_object($password)) ? get_class($password) : gettype($password);
            throw new \InvalidArgumentException('Expected password as string; got ' . $argumentType);