add drag n drop but without status machine func