new collision detection routines prove a little... strange... need to get it working better