fix: clean only if needed