Switching from tabs to spaces, to start.

Provided a skeleton (albeit rather detailed) of the implementation of
most, if not all of the assignment.

Some cleaning up and redesigning is likely in order before the UML is
generated.