add a transparent preview when dragging; refactor