made changes as per review comments and few more new tests