adding log instead of fmt for output. adding RunOptions, a bit of cleanup.
    breaking API changes.