Added shared state class
Added customization of RingBuffer size to input (as it was added to
state)
Added a few event triggers and init method