implement clean()