Lots of additions and changes