The XChar library is provided courtesy of Sam Ruby (See intertwingly.net/stories/2005/09/28/xchar.rb)