Problem here is that a result with an already cached icon won't be displayed in the correct order.
Perhaps should save a ref to the position in array?