updated from PRs