each container for example containers could include a linked list 221 a hash table 220 a binary tree or an array the linked list container 221 preferably has a reference 250 to the head cache object of a doubly linked list the hash table container 220 holds references 270 to all cache objects stored in the hash table a reference to each cache object must be stored in at least one container the cache object manager 210 preferably has sole discretion as to which containers hold which cache objects other containers may be used for sorting cache objects based on the source of the data the amount of certain system resources used or other criteria each cache object is preferably associated with a single data source the data source which will be described later in more detail describes where the cache object 39 s data originated from the data sources communicate 215 225 235 with the native kernel environment 110 on behalf of the cache object to locate its data source 240 241 242 each cache object 230 231 232 preferably maintains a reference 280 to the data source likewise the data source preferably possesses a reference 290 back to the cache object preferably nicache 130 supports any number of cache objects of any type simultaneously furthermore nicache.