Before revision: An abstraction layer is comprised of three components: protocol abstraction layer, extensions abstraction layer, and driver abstraction layer.
After revision: An abstraction layer has three components: protocol abstraction layer, extensions abstraction layer, and driver abstraction layer.