[wip] Sensible defaults

Here is a stab at doing #6.

Pretty significant changes, glad to discuss the approach taken.