added sign and interpolate functions