refactor hover