add JSONModel; restructure