consistent argument handling, docs, examples