reviewed code and add some files