public GetUserInfoResult genLoad() {
    EntityUser user = EntityUser.load(userId);
    EntityUser delegate = null;
    List<EntityUser> userVotes = null;

    if (showVotes) {
      userVotes = getVotes(user);
      HashoutUserToDelegate hashoutUserToDelegate = new HashoutUserToDelegate();
      List<EntityUserAndVote> userDelegateVotes =
        VoteFilter.filterVotes(hashoutUserToDelegate.loadEntities(userId.getKey()), votesTime);
      if (userDelegateVotes.size() > 1) {
        throw new GetUserInfoException("More then one delegate: " + userId);
      }
      if (userDelegateVotes.size() == 1) {
        delegate = userDelegateVotes.get(0).getUser();
      }
    }
    List<UserActionResult> userActions = genUserActions(userId);

    return new GetUserInfoResult(user, userActions, delegate, userVotes);
  }