initial parser commit. expect a lot to change