use id if available