WIP
(Almost) full grammar implemented