added deinitializer to support re-initialization