refact and add image loader