Emit proper Events, use callback