fixed bug, added clean()