it's better to use ArrayList instead of LinkedList here because of storage.get(index)