add requirements.txt and change Optparse to argsparse