added several stuffs and reorganize all the files