added comments , made getValue from OptArg generic