Added more test cases to cover more certification criteria and built some underlying functionalities.