Added hovering and refactored