added mandatory test cases and extra functions