template/interpolation refactor

* extracted interpolation methods into a module
* extracted project methods into a separate template class