load assets with callback