implemement and utilize IDisposable