Functional Add and Update