improved surface generation