extract ImageWriter as interface