use ??
use foreach
remove more redundancy
remove warnings on comments
implement GetHashCode
use lambdas
Remove more redundancy