PR changes. will rebase before merge.