We demonstrate a general framework for extending the pi-calculus with data terms. In this we generalise and improve on several
related efforts such as the spic calculus and the pi-calculus, also including pattern matching and polyadic channels. Our
framework uses a single untyped notion of agent, name and scope, an operational semantics without structural equivalence and
a simple definition of bisimilarity. We provide general criteria on the semantic equivalence of data terms; with these we
prove algebraic laws and that bisimulation is preserved by the operators in the usual way. The definitions are simple enough
that an implementation in an automated proof assistant is feasible.