some attempt on step 2 parser