add user logic