It would be nice if we could just flatten once, but I don't see a great way to do so without making a bunch of private methods.