Refactor to an abstract class, remove staging point and add render interpolation