Changed Exception hierarchy and did some magic
Added filter on methods