real implementation for edit contact