wrong semantics, should have used andThen