add new template-based output system