implement create user logic