You should check out optik. It rocks. Also, it's been proposed as an addition to the standard library--not sure what stage that's at, whether it's to be included in 2.3? Anyway, you'll find it here: http://optik.sourceforge.net/ // mark -