added data collector base class