Add option parser with tests