Added validation and used a partial