adds test cases
completes basic functionalities;