Added generative model structs(should add decoder)