auto generate definitions