add all business logic