Refactor vault object to be pluggable