mouse events, initial implementation