this is a work in progress. last revised 12/4/98