> As for the ctor check, i'm using the property setter to set the value in the constructor, 

It'd be good to enforce such checks for the `ctor` anyway ("let's send a null label name to the API!" for example)