better parser organization