v0.3.1: shuffled things around so the code is cleaner, and made things be namespaced a bit more