This sentence is incorrect:
"If this is not a subsurface then None will be returned."
self is returned if the surface is not a subsurface.
Alex.