added drag and drop and animated swap