collisions arent perfect but they should be good enough... for now