added top level exception catch for expected failures, put everyting into taiko namespace where it makes sense and pulled out some code into own files