move certain Utils functions into objects
allow Events Mix to be optional
add removeSelf ref for dtor
add comments
add tests for ctor()
adjust comments
rename functions
fix __call ctor
remove print(), update optimize(), update arg name