apply some corrections and suggestions by Magdaleen and Gerhard