switch to prepare_cached