add createNewSurface method