Not crazy about the duplication. I know it only occurs twice but I'd be tempted to make a macro called `IMPLEMENT_ADAPTER_CREATE_OR_CALL`.