Added ideas extracted from ScalaCheck book @gabrielelana