Make Input an abstract base class, and move the current functionality into FlatInput...