Initial commit. Tests passing.
Fixing merge conflict.