create generator component