Use bytes.Buffer instead of concatenation.

Fixes #4
Expand with struct instead of map.

Fixes #3