A lot of changes. Too tired to add summary