add command-line args, semantic checking (currently throws warnings but works)
