some misprints and more comments ;)