offloaded collision handling to separate class