implement store as gen server