collision stuff using user pointers