generic level update