Added Abastract method decleration to all surfaces + findIntersection