All rights reserved Lian Hong 2006
updated 25 08 2008