improve data parsing