renamed, re-wrote, removed readline
extracted reader out to another class for testability, wrote tests for input