Pi: a case study in object-oriented programming | Synapse