redo some commits, for better stability