I would consider add a method to Presentation that creates a dict from itself. It seems like this pattern is repeated a lot.