protected IEnumerable<Action> GetAfters() { if (Parent == null) return new[] { After }; return (new[] { After }.Union(Parent.GetAfters())).Reverse(); }