Bettter argument parser