improfed colision detection