This is the base class of data collector objects. We'll just establish the protocol for derived classes. This class is abstract and cannot be instantiated except by derived classes. A Snoop.Collector class is passed an object and manually fills up an ArrayList of Snoop.Data objects. The list is then displayed in a Form (or can be sent elsewhere if need be). For the most part, the Collector is just the initial catch point. CollectorExts are responsible for knowing about certain types of objects.