looks like we need an explicit exit