still working on 'clean' function