#34 Some initial refactor to separate concerns of parsing and object mapping