move constructors to be the first methods in order
add option to disable event driven logic and poll for events manually