add dio basic function