register / retrieve
first pass