The object holds all information describing the properties of the device, programs, command queues and cache (buffer objects). To use the device we first define the size of the Cache and load the Programs. Then we can access Kernels which can be enqueued to Command queues.