updated README and separations of lots of stuffs into modules