Store component (inspired by olives.js)