add signal, fix unpack