Redo API

This reintroduces I2a5bced4d1795f715564e331985c71df240ae332
and reverts I537c735d833cc9a7f95a22bd4e06f3f5d421a45b

Change-Id: I7715073aae49014c4e4cb829240aa9c77ab8f0ba
Merge "Redo API"