few enhancments and typos fixed