added register and some ops