add drag, drop and select behaviour