Create generalized writer builder.

Closes #129.