added tests and coverage reporting