add register funcion