parse from start to end