add user creation functionality