Big update

A lot of changes.