Add asset cache

Closes #4