Adding the first few tests
Adding json serialization/deserialization
Adding basic merge functionality
Adding remaining test