added argument_parser() and add_context()