Do some modified, to deal with different compiler