fundamental revolution... lots of seg fault got debugged