some revisions, modifications