moved collision into generic module