fix some bugs and add listcomp