Split loading functionality away from image API