argument parser should be class as well