collision abstraction