Major refactoring

- API change
- Simplified `data.set()` and afforded 1 less parameter if data is local, `key` is optional