separate mouse handler