rewrote interpolation and added scene graph