new design & pass objects to map