parser.c cleaned up