some improvements added
IImage interface added