I thought this was pretty good and worth a look, see what you think. Written by Xiang Kairen http://www.nardis.com/~twchan/ph.html