added 'down', 'move', and 'up' events