add driving function