Loose port of API from hyperactive.

hyperactive can be found here:

    https://github.com/elimisteve/hyperactive
Some comments.
Improve flexibility of reporting default values.