add more models and rearrange code