implementing storage abstraction (for future persistence)