add register interface