update result structure, add map & orDefault