c2000-12 by: Michael Stumpf