optimizations, slightly improved evaluation functions (though they still
need work)