changed emit to forward, added default behaviors including AllPorts