add drag and read function