Changing std::tuple for hand-rolled tuple, cuts template instantiate depth by at 250 in some places