diff --git a/duniterpy/grammars/output.py b/duniterpy/grammars/output.py
index 475036540c95742f404a0097c0b56a6807b99719..cf2f34f571e931b0548f58e3405c1a270e4ed55b 100644
--- a/duniterpy/grammars/output.py
+++ b/duniterpy/grammars/output.py
@@ -1,4 +1,4 @@
-from typing import Optional, TypeVar, Type, Any
+from typing import Optional, TypeVar, Type, Any, Union
 
 from pypeg2 import re, attr, Keyword, Enum, contiguous, maybe_some, whitespace, K
 
@@ -321,9 +321,9 @@ class Condition:
         :param value: Content of the condition as string
         """
         self.value = value
-        self.left = ""
-        self.right = ""
-        self.op = ""
+        self.left = ""  # type: Union[str, Condition]
+        self.right = ""  # type: Union[str, Condition]
+        self.op = ""  # type: Union[str, Condition]
 
     def __eq__(self, other: Any) -> bool:
         """
diff --git a/duniterpy/helpers/money.py b/duniterpy/helpers/money.py
index b6dd171f9b2a5a8cf6af2577898646d10ce21f69..0a9d0729643b65d3efe52b19e947fb116348cd1d 100644
--- a/duniterpy/helpers/money.py
+++ b/duniterpy/helpers/money.py
@@ -1,9 +1,9 @@
-from typing import Union, Type, Any
-from duniterpy.grammars.output import SIG, CSV, CLTV, XHX, ConditionType
+from typing import Union, Any
+from duniterpy.grammars.output import SIG, CSV, CLTV, XHX, Condition
 
 
 def output_available(
-    condition: Type[ConditionType], comparison: Any, value: Union[str, int]
+    condition: Condition, comparison: Any, value: Union[str, int]
 ) -> bool:
     """
     Check if output source is available
@@ -14,13 +14,13 @@ def output_available(
     operator.gt(a, b) is equivalent to a > b
     operator.ge(a, b) is equivalent to a >= b
     """
-    if type(condition.left) == SIG:
+    if isinstance(condition.left, SIG):
         return comparison(condition.left.pubkey, value)
-    if type(condition.left) == CSV:
+    if isinstance(condition.left, CSV):
         return comparison(int(condition.left.time), value)
-    if type(condition.left) == CLTV:
+    if isinstance(condition.left, CLTV):
         return comparison(int(condition.left.timestamp), value)
-    if type(condition.left) == XHX:
+    if isinstance(condition.left, XHX):
         return comparison(condition.left.sha_hash, value)
-    else:
-        return False
+
+    return False