Large rewrite/refactoring of the spec (#156)

Add a description of Large rewrite/refactoring of the spec (#156)