separated template and script