refactor ActionHandler