it wouldnt compile with gcc, it does now