generate with public modifiers and some public decl