Experimental feature: put conditon of val > 0 back in, but now everywhere and not just in interpolation.