registration with validation