written by Kurt Shoens; add Berkeley copyright