move logic higher in chain