add cleanup interface