basic main + basic parser