Update with tons of fixes