Adds optional requirements and ups version
Change argument type to string, parser interface to use path

- All of this is to address issue #9
- support input json (sort of, needs testing)