add lookup and update register! to handle optional data