new Reason Struct
Added demo event handling
Cleanups
merged