added ARGV arguments
more changes
added some test