reworked Push system so that it accepts JsObject instead of Map