Only initialize in initializer.
Some cleanup.
Handle UTF-8 params.

Adapted from pull request #1 by @simmel.