I've built 1 Java site (using Tomcat as the server). It works. Now its time to build a 2nd one. I think my thought process is flawed because this isn't working as I thought it might. For site #2, I made a new package directory. I then placed many of the files from site #1's package directory in site #2's package directory. I've updated site #2's web.xml file to reflect the new naming scheme. Here's where there's problems: I was hoping I could use the same class names, with a lot of the same functionality, but add some tweaks to fit site #2. Example: I have one class that focuses on building nav menus for a site. The class its in is called "Display" and its public. I've tossed the Display java and class files over into site #2's package directory and it compiles fine. If I reference this class from any classes in site #2's package, I get a compile error: I'm thinking this is a multi-part problem fueled by my lack of Java experience. I have a few files that won't need modifying that are more like library files. Is there a spot I can park them so all my web apps have access to them? I've tried doing this before but without any luck (I'm guessing I just need to know what XML file I need to tweak to make it work). The Dispatcher class mentioned above might be a good candidate for this. The Display class on the other hand needs to be global for the site, but not global for all sites (so all the classes of site #1 should see site #1's version of the Display class while site #2 has its own version it can see). Right now these classes are all being defined as public. I'm starting to think "public" may not be the best fit (it works for site #1, but from my research so far, public will make the class available to other sites - which I don't quite want). So, I think I'm missing some fundamental Java development techniques. Is there some books that cover these type of concepts? I've got a couple here, but they're all about deployment for one site on one server.