Bare bones implementation of constructors and more

None of these are tested, and probably they're wrong but this is the general
outline of the code. We'll see how to best implement it in C++ when I learn
more.
Added missing semicolons.