implement asset uploading