improved mouseenter & mouseleave functions