clean is mandatory