updating and adding more tests.