I suspect there must be a better way which could present this more generically e.g. if I could iterate over the enum somehow ...