better business logic