lifecycle can start in arbitrary states (e.g. sealed)