pulling in changes

Need to keep synced with upstream