fix #14：重构storage