At present the shared resource cleanup method is a class method.
This will prohibit descendents of the class to influence whether
cleanup should be run.
Remove the @classmethod decorator so that it will make its
descisions based on class instance variables set by the
descendent.