A framework to use when building complex plugins