add drag feature and almost all map functionalities are done