Closes #21
More or less fixes #13. We have some repeat util code that I still want to eliminate though.