those should be mutable, users can add to them (need to make it easier to add html elements for new types... arggg)