cleaned up drop functionality