separation of commercial logic