New stuff and tests.

Tests! Finally! Wooohooo!