updating with initial json example and more explicit models