public api's mouse callbacks receive mouse coordinates instead of event object
public api for current functionality
buildup of public api