diff --git a/boundaries/__init__.py b/boundaries/__init__.py
index 528d5878ccebefc1b6559cbd6d171c7409d1d6e4..1a3bc2a24b3f579a1d2e5dad4e65b6ce3e6e990b 100644
--- a/boundaries/__init__.py
+++ b/boundaries/__init__.py
@@ -1,4 +1,4 @@
-from lbmpy.boundaries.boundaryconditions import NoSlip, UBB, FixedDensity, NeumannByCopy
+from lbmpy.boundaries.boundaryconditions import NoSlip, UBB, FixedDensity, NeumannByCopy, StreamInConstant
 from lbmpy.boundaries.boundaryhandling import LatticeBoltzmannBoundaryHandling
 
-__all__ = ['NoSlip', 'UBB', 'FixedDensity', 'NeumannByCopy', 'LatticeBoltzmannBoundaryHandling']
+__all__ = ['NoSlip', 'UBB', 'FixedDensity', 'NeumannByCopy', 'LatticeBoltzmannBoundaryHandling', 'StreamInConstant']
diff --git a/boundaries/boundaryconditions.py b/boundaries/boundaryconditions.py
index bf5586644e9860e1eb0cb84a25416a7c2384724e..4d1912754cc9e6aaf1cd200851dcec8136d3d205 100644
--- a/boundaries/boundaryconditions.py
+++ b/boundaries/boundaryconditions.py
@@ -215,36 +215,20 @@ class NeumannByCopy(Boundary):
         return type(other) == NeumannByCopy
 
 
-class StreamInZero(Boundary):
-    def __call__(self, pdf_field, direction_symbol, lb_method, **kwargs):
-        neighbor = BoundaryOffsetInfo.offset_from_dir(direction_symbol, lb_method.dim)
-        inverse_dir = BoundaryOffsetInfo.inv_dir(direction_symbol)
-        return [Assignment(pdf_field[neighbor](inverse_dir), 0),
-                Assignment(pdf_field[neighbor](direction_symbol), 0)]
-
-    def __hash__(self):
-        # All boundaries of these class behave equal -> should also be equal
-        return hash("StreamInZero")
-
-    def __eq__(self, other):
-        return type(other) == StreamInZero
+class StreamInConstant(Boundary):
+    def __init__(self, constant, name=None):
+        super(StreamInConstant, self).__init__(name)
+        self._constant = constant
 
-
-class AntiBounceBack(Boundary):
-
-    """No-Slip, (half-way) simple bounce back boundary condition, enforcing zero velocity at obstacle"""
     def __call__(self, pdf_field, direction_symbol, lb_method, **kwargs):
         neighbor = BoundaryOffsetInfo.offset_from_dir(direction_symbol, lb_method.dim)
         inverse_dir = BoundaryOffsetInfo.inv_dir(direction_symbol)
-        rhs = pdf_field(direction_symbol)
-        t = -rhs
-        return [SympyAssignment(pdf_field[neighbor](inverse_dir), t)]
+        return [Assignment(pdf_field[neighbor](inverse_dir), self._constant),
+                Assignment(pdf_field[neighbor](direction_symbol), self._constant)]
 
     def __hash__(self):
-        # All boundaries of these class behave equal -> should also be equal (as long as name is equal)
-        return hash(self.name)
+        # All boundaries of these class behave equal -> should also be equal
+        return hash("StreamInConstant")
 
     def __eq__(self, other):
-        if not isinstance(other, AntiBounceBack):
-            return False
-        return self.name == other.name
+        return type(other) == StreamInConstant