support for short and long opt