finished summary functions