flesh out generators more

still need to make configuration easier
can probably make the logic more generic too