some minor changes have been added _1.