More 'correct' way of implementing Dispose?