added tensor product surfaces