return data structure