added support for argument parsing