more tests and bug fixes on correct ::drop behavior