changed some templates to parameterised enum/alias syntax