Many changes

A lot of changes