Add constructors; comments
Extract input event type enum