added interpolateBetween