Refactoring consumer/editor interaction

Now ace and stub have the same interface, so we don't have to treat them
separately. Events are neat.