Serious code cleaning, much more elegant now.  Added temporary surface
normals that seem to work.
Still tests locally.