wrapper handle register func