dependencies

port (cherry-pick) from master