added: business logic