implement new expand ,not test yet
implement new expand ,already test