Undid broken merge/revert on surfaces.py - unit test does not pass, but that was true before the broken merge.