@mrvisser: I submitted a PR to your branch with some of my follow-up changes. There's an additional concern in there around what happens when extending the compact function inside of the tenant object. It's up to you to decide how you'd like to move ahead.