Use abstract base class for recommenders