When BufferData is called the first parameter is target - for example, ARRAY_BUFFER. BufferData copies data from the client to a buffer object associated with target. However, buffer objects also have names which are returned with a call to GenBuffers. Why doesn't BufferData take the name of the buffer instead of target? What is the rationale for using target instead of the name?