updated according to feedback + error messages + preventing double user registrations