Orchestration of web services using low-level languages like BPEL is akin to performing Software Engineering with just the target programming language. Orc has been proposed as an elegant and more abstract design language. But much of its elegance derives from its functional style which must be matched, by the Software Engineer, with the state-based nature of systems as a whole. This paper explores the interface between the state-based and functional views of orchestration by studying a more abstract semantics for Orc. Sound laws are established and the resulting formalism is used on examples to demonstrate the top-down development of implementations.