the code now gets user arguments