added support for proper recursive interpolation