Added IDisposable interface, to help manage resources that require clean-up.