add images and improved constructors