Tested on windows, implemented commandline arguments