added some asset cache and name generation logic