altered JSON class hierarchy, its now a lot cleaner