some more repharsing, thanks to Shripad, added the introduction at the top