API cleanup
Merge remote-tracking branch 'origin/17' into 17