make metadata storage pluggable

same here, why the giant string blob?