This chapter addresses the issue of developing graphics functions for others to use. This will involve a discussion of some of the lower-level details of how grid works as well as some more abstract ideas of software design. A basic understanding of programming concepts is recommended, and the later sections assume an understanding of object-oriented concepts such as classes and methods.