fix simulate bug, find another bug to fix;
add some level