improved clever_move