eventually this will turn into something vaguely resembling an API. maybe.

i bet i've broken something though