put box collision back & outsourced collide logic