Changed Register from a descriminate union to a .NET enum, so we don't have to reflect