worked on argument parsing