start to refactor storage