add form processing
add validation
change error handling in generators
create counter class
cleanup prepare method