Added some reasoning behind some rules