Renaming some things for clarity, keeping in line with other langs
Filling in the main and stubbing required methods

plus ignoring new executable name