modified picture to support multiple types