We can std::move the std::string parameter in Label's constructor, allowing the constructor to be moved into in calling code. We can cascade this outwards in the interface as well.