basic model struct generate