converted card abstract class and subclasses to interfaces
simplified class names
stricter signatures for Turn subclasses