ALL THE CASES ADDED BUT NOT YET TESTED