Some pretty major changes. Simplifying the whole thing.