initial attempt for image function implementations