better base model structure