improve drops algorithm