changed CheckoutAsset to abstract model, added models for each asset type