Lots of changes. Update commit message later