uses templates