Changed almost everything, now using raycast for collision detection.  Comments inc.