Изменения по последним замечаниям. сериализацию не делал, потому что при stringify ничего лишнего не попадает в результат.