complete refactor to try to start using json-pushes