In this section I want to discuss the merits of the family of head driven bottom-up generators. In the first section I will define BUG1, a simple member of this family. In the second section I will argue why the head driven bottom-up approach is favorable. The third section discusses some problems with BUG1 and discusses some extensions to BUG1. The fourth section shows how parsing and generation can be incorporated in a general architecture. In the fifth section I will give some more ambitious examples and some experimental results.