Refactor ArgumentParser