merge from upstream docs