user.contact_id must be nullable to avoid circular dependencies