What do you need to do to implement a completely new Web Service protocol in Magento?

A.
Create your own adapter and controller.
B.
Create your own API resource.
C.
Create a new API helper.
D.
Create a new model extended from Mage_Api_Model_Abstract.