Major refactoring of dropping item for extensibility