Changed the Attribute Type to an abstract class rather than an interface.
Also playing around with the rendering page logic. All the attributes can now render themselves, the default being to just return the content. This allows complex attributes, like in the web forms module, to use templates to make rendering a form easier.