modification framework