user creation and validation