rebased atomic-updates from master