some improvment, but ends with crash