All rights reserved Lian Hong 2006
updated 19 05 2010