implementing all the code coverage stuff corrently