Refactoring
Base
add 'disposed' flag to support querying whether the instance has been disposed