Initial Term implementation, far from perfect
Generator approach, a bunch of other random stuff