refactor click