simplify Surface more.  only pointers are needed.
simplify further.  no need for knowledge of Colors