gernal update & rework