added controllers and validation