cleanup should be public