implementation generic contact