core functional update