add JE; refactor