cleanup framework