generative model seems to be working...
don't use *args and **kwargs