more data parse logic refactoring