clean & refactor click event