private void register(Map<String, Object> jsonrpc2Params) throws Exception{
        Map<String, Object> params = getParams(jsonrpc2Params,
                new NullableExtendedParam(Constants.Param.Name.USERNAME, false),
                new NullableExtendedParam(Constants.Param.Name.DESCRIPTION, true),
                new NullableExtendedParam(Constants.Param.Name.SHOW_BIRTH_DATE, true),
                new NullableExtendedParam(Constants.Param.Name.AVATAR, true));

        int facebookId = accountId;
        String username = (String) params.get(Constants.Param.Name.USERNAME);
        String description = (String) params.get(Constants.Param.Name.DESCRIPTION);
        Boolean showBirthDate = (Boolean) params.get(Constants.Param.Name.SHOW_BIRTH_DATE);
        if(showBirthDate == null){
            showBirthDate = false;
        }
        //TODO: Avatar
        String query = "SELECT u FROM Account u WHERE u.username = :" + Constants.Query.USERNAME;

        try{
            clientAccount = em.createQuery( query, Account.class).setParameter(Constants.Query.USERNAME, username).getSingleResult();
            responseParams.put(Constants.Param.Status.STATUS, Constants.Param.Status.USERNAME_TAKEN);
            return;
        }catch(NoResultException e){
        // This is good!
//            new Date()userAndApp.me.getBirthday()
            clientAccount = new Account(username, facebookId, description, null , Constants.Database.NO_LIMIT_PER_DAY, Constants.Database.DEFAULT_USE_DEFAULT_COLORS, showBirthDate, facebookToken );
            persistObjects(clientAccount);
            responseParams.put(Constants.Param.Name.ACCOUNT, serialize(clientAccount));
            responseParams.put(Constants.Param.Status.STATUS, Constants.Param.Status.SUCCESS);
            // TODO: Private categories should probably not be generated like this in the future
            List<Category> categories = getAllColumns(Category.class);
            for(Category category: categories){
                persistObjects(new PrivateCategory(category.getHeadLine(),category.getColorCode(), null, clientAccount));
            }
        }
    }