Fix a group of situational collision bugs
Code deduplication