Rewritten parser