Gem gives object the ability to bind and trigger custom named events. Events do not have to be declared before they are bound, and may take passed arguments.