1. A method of providing content to a user, the method comprising: receiving, by a client device, a plurality of content items from one or more servers; receiving one or more content files associated with a first set of the content items, the first set being at a top of an ordered list of the plurality of content items; creating a queue of the received content files; playing, by the client device to a user, the one or more received content files as a stream of content, such that a number of the received content files in the queue is reduced when the one or more received content files is played; determining, by the client device, whether the number of the received content files in the queue is smaller than a threshold; and when the number of the received content files in the queue is smaller than the threshold, requesting content files associated with a second set of one or more content items, wherein the second set of content items are to be played following the first set of the content items.