Been reading through the USB document and going through the codes but still having a bit of trouble grasping the concept of an interface. What would constitute an "interface"? Does it encapsulate a class with the associated class methods? Where in the code does it bind the "interface" to the class? When the host request for an "interface", what would it get in return or what would be the purpose of asking for an interface? For example, if a device declares that it has three interface, how does it associates each interface to the actual firmware codes? Thanks.