refactored from storage to store