commiting framework