Cleaned start/end events

Firing order is now inverted, when scrolling in reverse with 0 duration
Rewrote events to be also used internally

Also fixed several bugs in main class as well as debug controller