making an interface closer to Jackson