revised and finally submitted