redefine defservice as a macro which returns a function taking a node to reify the service