Removed extra semicolon.
Added grunt test and fixed a bunch of issues.

Things seem to be working properly now; the tests still need to be
cleaned up and coverage needs to be implemented, but okay to start
using.