Work with @kris-brown on this since he is currently refactoring a lot of Catlab to make features like this easier to implement.