Move Merge to a different file
Implement json.Unmarshaler interface.
Combine all code into a single file and a test file.