updated models with methods