first pass contact interactions client side