Added comments, tidied up the API, and removed Point2D.
Rename CLI to Main.
Updated code for better user interaction.