added map and constructors to Opt