parse body first