drag grid view refactored