added the generic push models, finished up the visit object