some speeding ups
fix checking argument and error string in ArgumentParser