add flexsum function