* using templates to prevent merge conflicts