slick recursion
pushing down the sponsibility
that shoooooould work i think