Split adjoin in two templates
Improve return value construction in adjoin
Merge pull request #2013 from monarchdodra/adjoinBuild

improve adjoin