Started with images, trying to optimize things for a usable image implementation and single responsibility with lesser interfaces and lesser traits.