In this chapter, I'll first look at several items that can help improve the efficiency, performance, and cleanliness of the application code discussed so far. As in the creation of any application, a lot of ground has been covered very quickly. It is worth taking a short break from adding features in order to really wrap up the data layer; those who inherit your code some day will be glad you did. From there, I'll move on to showing you how to realistically test your application, and write a client for the various beans and the LDAP manager that are in place. This also gives you a chance to populate your data stores, so the examples in the rest of the book will be using the same data as in my version of the application. More importantly, if you're not familiar with using RMI, JNDI, and contexts with your beans, you'll see this sort of client in action. At the end of the chapter, you can say you've got a complete, functional, polished data layer, which is quite an accomplishment.