extracted an interface, added a test case for multiple fields