cleaner without introducing function