add transients & type hints in percolate fns
switch to sets for components, add unregister method