better error checking and prompt for params