moved semantic and business validation down to the data access layer