Added and Documented API encapsulation, listeners(), running(), reset()