contact must be non-empty