Adds additional functionality and bugfixes, as well as implementations of several tests.  Can be considered Alpha now.