adding kwargs feature for class initialization, recursive json serializer