Implement full parser