improved model structure