actor: refactor, add Signal