refactoring out citation template support into a separate spec