preloading in separate function for override