might sigfault,fix it