Add validations, clean up code using partials