added business logic