cherry-pick and rebase #15