unicode support and a whole bunch of other stuff