Removed supports from the object model as it didn't seem to fit with the design of the object model.
Made donation an aggregate root that refers to the user and the campaign, rather than having a strange ownership model.