added search/factory interface and TVCritic derived class