improve compiler compatibility