public static function factory(Client $client, $type = null, $data = []) { switch ($type) { case 'account': return new AccountResponse($data, $client->getOptions()); case 'user': return new UserResponse($data, $client->getOptions()); case 'user-right': return new UserRightResponse($data, $client->getOptions()); default: return new self($data, $client->getOptions()); } }