Vortex methods offer a grid-free alternative to simulating incompressible, viscous, fluid flows. They require the use of fairly sophisticated algorithms and can be complicated to implement for general flows. This article describes an object-oriented design used to implement a vortex particle based flow solver in two dimensions. We provide an overview of the various abstractions that arose as a result of this design. Several of the algorithms have common components that may be abstracted and reused. We demonstrate how the design allowed us to derive the traditional benefits of OOD. In addition, we show how the design directly suggested elegant generalizations of existing algorithms. Finally, we show the benefits of using software testing techniques and building a powerful scripting layer for the library. © 2009 ACM.