maintain materials in a dictionary keyed on unique id