Template engine with data-binding