added DeviceApi17 class to separate out Api17+ stuff