implementhing Option class.