added cli args and broke apart into two separate classes