update to latest from upstream