181214 Refactored the input classes

-Finished some todos
-Added new todos
-Intensive testing would be nice