pushes more responsibility to tableGenerator