updates by billchen 1977