Added and modificated lots of things(Difficult to list them)