fixed slice bug

the end argument would get overwritten
emit() now snapshots events in the defer.

this allows you to .on() after .emit()