need to properly ensure registers, look at lecture 7