Tested on a few cases