use slot and signal