move business logic into command