Making Image abstract, and adding ImageFourNeighborType as contracte with neighbor relation tyoe four