added almost all needed functionnality. started argument parsing