added tests modified add more src for passing tests