rework of object return structure