functions workable with split update