Abstract. In the context of Service Oriented Computing, contracts are descriptions of the observable message-passing behavior of services. Contracts have been already successfully exploited to solve the problem of client/service composition. Inspired by current orchestration languages, we consider services where the choice to perform an output may not depend on the environment. Under this assumption, we propose a new theory of contracts which also addresses the problem of composition of multiple services (not only one client with one service). Moreover, we relate our theory of contracts with the theory of must testing pre-order (interpreted as a subcontract relation) and we show that a compliant group of contracts is still compliant if every contract is replaced by one of its subcontracts.