Reduced complexity by moving node evaluation into a trait