updated and added more tests