Pack and cache API refactor