split out separate packages from Generic.pm