sync with main trunk completely (a few tests failing)