simplify business logic according to review