Restructure and adding test runner to support code coverage metrics