move collision to its own component