Move type definitions into their own file
Add initial parser