generalising the collisions a bit