Reimplementing interpolation
Improvements on implementation