improved wall collisions