move business logic to a middle tier workflow class