First stab at adding MetadataManager

This is NOT ready to merge yet. I'll be adding implementation for the functions in the next couple of days.
Standalone function.