some modification done. still under construction.