implement basic storage