add proper result structs and unmashalling for MP