Guaranteed to terminate