terminate may be None