all tests passing, but there is an issue with merge being a shallow copy. (multiple calls to init may not behave as expected)