added illegal argument exception
accurate remaining length
display ETA
estimate time of completion
removed device flag