add option monad instance