modify device function