Add an argument parser. Comment unfinished commit optimisations.