argument parsing added