modify and fix