Fix up the API

So we can kind of make this work but I'm not a fan. It seems SUPER hacky but
it shouldn't be such a big deal. Also I need tests :(