Currently Broken, but needs to be tested on GCC