Simplify SAP by not having a CacheQueue and storing the cache directly
Factor out the (arg)min step from each of the public methods