Not a huge fan of the magical empty-string member id. maybe could call it "shadow" or something?