make enhancer services private, made the enhancer_controller_for_templates_by_class abstract