rename template compiler
remove recursion from template compiling