MASSIVE REWRITE. Clearer conceptualization, better abstractions.. looking more like something shippable, naming still sucks