More generic JSON model with fewer classes