Implement loading and caching

Next up: saving.