use a blueprint to enhance embedability/reuseability/modularity; fixes #25

Fixes #25.
CC: @rajivm @dlindquist for review