Created object to hold state instead of using just longs
Added estimated minimum of number of moves until finish