added setDesiredSurfaceArea()