added metadata objects and functions to create them (as an alternative to hacking around with strings and lists