business logic implementation