Page written and edited by Chris Siefert
Written in pico with a lot of gcc preprocessor abuse