works slightly better now; pointer events and faster animation