IDispose implemented
refactoring
refactoring