Beginning of storage refactor