AlternativeClassesWithDifferentInterfaces