template dekompozition