add #parse and test cases