assetController abstraction