sync with hxparse refactor