continue refactoring to separate abstract with the implementations, started json implements, need more refactoring for the array sub-node creation logic