basic generation in api