Pretty massive reorg (But I did break the api for a minute here)