do some work to support old compiler