lots of updates and basic tests