Basic eval now applies NIDs together. Tests confirm this. Moved module to common code