Symmetric Eval (8205159)

Due to messy merge conflicts with 187a9fe5e7b8349b9eacf23e11cb801a32bb6b12, I had to rewrite this code from master, and send a new pull request.