[refactor] each handler