added register and accessor