compiles on gcc4.8