Move Plane and implementations to separate package