adapted to gcc 4.8