implement freemarker integration