added code generator
step 3