Initial hacking done by Chris Heller . Additional contributions by: Conrad Parker Philip Cunningham Stephen Diehl