generalized visit assign