Cleaned up argument parsing