draft: template parse