whoops, I was yielding cls.create which would then cause the same message to be sent again, so there was an infinite loop thing going on :(