use nested templates