catches sigsegv cus we're cheating with c, need to figure out how to recover from it now