Drop and Drop with GridLayout

Can anyone please share an example of how to do drag and drop within a GridLayout?
I have panels within a GridLayout and would like to be able to move them around.

I’ve looked at the example on the sampler but it’s only confusing me. To be precise the DropHandler is confusing me. When a component is dropped do I need to check where it’s being dropped? Why can’t I just call a replaceComponent? I believe the default behaviour is to swap 2 components if they both exist.

Does any one have examples of having done with with grid layout?