Use cached inventory contents for pre-checking canProvide
convert a whole bunch of LinkedList to List