Refactoring

Added helper classes , removed emailBag domainBag , instead using BagHelper, reduced constructor complexity .
Diverse fixes , according to scrutinizer analysis