why not a concrete class here and pass in the store and reporter?