huge changes to model