components publish their own assets