new collision code kind of works
new, more robust collision code