2. Typical code public class CustomerManager { public void Insert(Customer customer) { CustomerData data = new CustomerData(); var newCustomer = data.Insert(customer); Logger.Log("New customer inserted" + newCustomer.Name); Mailer.SendWelcomeMail(newCustomer); return newCustomer; } } Here’s a typical example of code we usually do: A business layer class A data access layer class Utility class