maybe it's worth making Extract virtual in the base class and define the package-specific methods in the child classes?