refactored parse API