first good draft of Device API