fixed for older compilers
fixed for new compilers