make metadata storage pluggable

why would we allow null values here?