Many changes

many changes