Changed the Semigroup behavior at the behest of @roconnor