add preloadImage function
merge