add cleanup decorator