logic from controller moved to business service layer