separates template implementation into hpp file
Merge branch 'output_operator_issues'