add device and binary API