Refactored Parser because Jeff blew up our implementation