filter + accumulate implemented, refactored addListener to be deprecated using on/off callback and namespace