Added a body of argument parsing and remove old huge staff.