more generic model definitions