holy shit, the code is passing with slices and lifetimes