Encapsulated MetaData members. Added helper functions for common tasks.

Is there any reason why you specify the type explicitly, rather than using auto (or const auto)?