add image cache and support lib