Jack's age will be represented as "x" and Fred's age will be represented as "y".
We know that right now Jack's age is 4 years more than twice Fred's age, this means:

After 8 years the age of each of them must be added by 8 and they will be equal to 59 when added. We have:

We then have two equations and two variables, therefore we can create a solvable system of equations.

To solve the system o equations we can use the additive method. This is done by multiplying the first equation by "-1" and adding both equations. we have:

Since the sum of their age must be 43, we have:

The ages of Jack and Fred are respectively 13 and 30.