Enhancement/294/metadata refactor

This should be addressed in #295