made event handler public & overwriteable

also fixed fill and empty event bug and made e.preventDefault() local
(wasn't needed in the eventHandlers)