(hopefully) made this to where it will compile properly under gcc