add ::update! method