pub trait IIntersect { fn intersect(&mut self, other: &Other) -> Option; }