self-colision added
cleanup