Is there a reason this is an inner class of ArgParseInterface? It could be declared at module scope