generalize the NLP module + fixes + refactor