Fix import cycle: move InnerElement out of decoder