properly handle preload