still trying to implement the surface transforms correctly