Semi-Major Surface refactor (breaking change)

Change Heigh/Width to int from uint32 is the breaking change. However,
more refactoring and changing of this code is still to come.