use gnu99, ref #1