Somehow messy way to load image only once and add option to skip preloading images
Silly way to add callbacks to onInit, onShow and onHide