revised and some corrections