typos corrected by igorw suggestions