Commit 2 - Fully Commented

Also includes advice for extending the barebones language using this
code