added a heap of breaking structural changes