add summary function