change ways
evaluation function is a mess