optimize drop() fn slightly