implement thumbnail swapping with mouse drag (close #18)