Had to do it all at once due to name conflicts with API exposed in libopencm3. Quite invasive patch! Also precipitated an LED API...