corrected after review + added drop() errors handling test case