finished first pass at full ble api