added surface step function interpolation