Cleaning up solution and adding validation to models.