clean
use ~ to reduce ()