refactor handlers into handlers dir because semantics