Add observer pattern to Metadata