added hand evaluator + some refactor