A note from the MightyLinks developer: I've emphasized ease-of-use, speed, and compactness in MightyLinks. It was very important that the PARAMs work in a way which was familiar to HTML coders. It was also important that the finished class files be small and fast to download. For performance, I spent a great deal of time making sure that functions which affect painting were called as efficiently as possible. This meant avoiding unnessecary redraws which would cause noticable "flickering" when using image backgrounds. The catch here is that not all browsers repaint their applets equally. More than once, I'd have something that was lean and mean in Netscape, only to find that it didn't work consistently in IE. Because there are only two or three class files which communicate intimately with each other, I've left all of the properties and members public. As more classes are added or the originals are reused, I will probably go back and change many things to private. The loadImage() while-sleep loops exist because of a quirk in IE 4 and 5. The loop insures that images are loaded one at a time instead of in parallel threads. It was found in testing that IE 4/5 would tend to stop loading when several large images were required (in this case, 8 images -- all about 20K). This resulted in buttons with only part of the image showing. Reducing the number of parallel image-loading threads fixed the problem. The nature of Free Software encourages changes and improvements by others. If you have suggestions or changes you would like to see incorporated into the official MightyLinks distribution, please send them to mightylinks@maiermedia.com. Enjoy! Edwin Maier