diff --git a/beembase/objects.py b/beembase/objects.py
index 1e3cdd93a085683b66b5917482b767e471dcc1af..3ba66dfc31b6cce322e0c2fbed886ffb56696634 100644
--- a/beembase/objects.py
+++ b/beembase/objects.py
@@ -48,12 +48,13 @@ class Amount(object):
             self.amount = d[0]
             self.asset = d[2]
             self.precision = d[1]
-            self.str_repr = d
+            a = Array([String(d[0]), d[1], d[2]])
+            self.str_repr = str(a.__str__())
         else:
             self.amount = d.amount
             self.asset = d.symbol
             self.precision = d.asset["precision"]
-            self.str_repr = d.json()
+            self.str_repr = json.dumps((d.json()))
 
     def __bytes__(self):
         # padding
diff --git a/beemgraphenebase/types.py b/beemgraphenebase/types.py
index 73f7976eb3486e92a5ce681256458c02981518d7..c88759ee383cb034f320a3e4b9edc05d1ea978ff 100644
--- a/beemgraphenebase/types.py
+++ b/beemgraphenebase/types.py
@@ -248,7 +248,10 @@ class Array(object):
         r = []
         for a in self.data:
             try:
-                r.append(JsonObj(a))
+                if isinstance(a, String):
+                    r.append(str(a))
+                else:
+                    r.append(JsonObj(a))
             except Exception:
                 r.append(str(a))
         return json.dumps(r)
diff --git a/tests/beembase/test_objects.py b/tests/beembase/test_objects.py
new file mode 100644
index 0000000000000000000000000000000000000000..463631b5c68d44f760ad2c82f6aca444ef47155c
--- /dev/null
+++ b/tests/beembase/test_objects.py
@@ -0,0 +1,37 @@
+from builtins import chr
+from builtins import range
+from builtins import str
+import unittest
+import hashlib
+from binascii import hexlify, unhexlify
+import os
+import json
+from pprint import pprint
+from beembase.objects import Amount
+from beembase.objects import Operation
+from beemgraphenebase.types import (
+    Uint8, Int16, Uint16, Uint32, Uint64,
+    Varint32, Int64, String, Bytes, Void,
+    Array, PointInTime, Signature, Bool,
+    Set, Fixed_array, Optional, Static_variant,
+    Map, Id
+)
+
+
+class Testcases(unittest.TestCase):
+    def test_Amount(self):
+        a = "1.000 STEEM"
+        t = Amount(a)
+        self.assertEqual(a, t.__str__())
+        self.assertEqual(a, str(t))
+
+        a = ["3000", 3, "@@00000032"]
+        t = Amount(a)
+        # self.assertEqual(str(a), t.__str__())
+        self.assertEqual(a, json.loads(str(t)))
+
+    def test_Operation(self):
+        a = ['1000', 3, '@@000000013']
+        j = ["transfer", {'from': 'a', 'to': 'b', 'amount': a, 'memo': 'c'}]
+        o = Operation(j)
+        self.assertEqual(o.json()[1], j[1])
diff --git a/tests/beembase/test_operations.py b/tests/beembase/test_operations.py
index aabc1ddba0c0b6a19fa2040842de24043b3dfff7..2b17784b3256fb48743dc2833a5629b0cd59c7ae 100644
--- a/tests/beembase/test_operations.py
+++ b/tests/beembase/test_operations.py
@@ -6,21 +6,41 @@ from __future__ import unicode_literals
 from builtins import bytes
 from builtins import chr
 from builtins import range
+from builtins import str
 import unittest
 import hashlib
 from binascii import hexlify, unhexlify
 import os
 import json
 from pprint import pprint
+from beem.amount import Amount
 from beembase.operations import Transfer
+from beembase.objects import Operation
+from beembase.signedtransactions import Signed_Transaction
+from beembase.chains import known_chains
 
+wif = "5J4KCbg1G3my9b9hCaQXnHSm6vrwW9xQTJS6ZciW2Kek7cCkCEk"
 
-class Testcases(unittest.TestCase):
 
+class Testcases(unittest.TestCase):
     def test_Transfer(self):
-        transferJson = {'from': 'test', 'to': 'test1', 'amount': '1.000 SBD', 'memo': 'foobar'}
+        transferJson = {'from': 'test', 'to': 'test1', 'amount': "1.000 STEEM", 'memo': 'foobar'}
         t = Transfer(transferJson)
         self.assertEqual(transferJson, json.loads(str(t)))
         self.assertEqual(transferJson, t.json())
         self.assertEqual(transferJson, t.toJson())
         self.assertEqual(transferJson, t.__json__())
+
+        transferJson = {'from': 'test', 'to': 'test1', 'amount': ['3000', 3, '@@00000032'], 'memo': 'foobar'}
+        t = Transfer(transferJson)
+        self.assertEqual(transferJson, json.loads(str(t)))
+        self.assertEqual(transferJson, t.json())
+        self.assertEqual(transferJson, t.toJson())
+        self.assertEqual(transferJson, t.__json__())
+
+        o = Operation(Transfer(transferJson))
+        self.assertEqual(o.json()[1], transferJson)
+        tx = {'ref_block_num': 0, 'ref_block_prefix': 0, 'expiration': '2018-04-07T09:30:53', 'operations': [o], 'extensions': [], 'signatures': []}
+        s = Signed_Transaction(tx)
+        s.sign(wifkeys=[wif], chain="STEEMAPPBASE")
+        self.assertEqual(s.json()["operations"][0][1], transferJson)
diff --git a/tests/beemgraphene/test_objects.py b/tests/beemgraphene/test_objects.py
new file mode 100644
index 0000000000000000000000000000000000000000..195038d55b5fae7a322b21d64e1dc4878261e9a6
--- /dev/null
+++ b/tests/beemgraphene/test_objects.py
@@ -0,0 +1,31 @@
+# This Python file uses the following encoding: utf-8
+from __future__ import absolute_import
+from __future__ import division
+from __future__ import print_function
+from __future__ import unicode_literals
+import unittest
+import json
+from beemgraphenebase import objects
+from beemgraphenebase import types
+from beem.amount import Amount
+from beem import Steem
+
+
+class Testcases(unittest.TestCase):
+    def test_GrapheneObject(self):
+        j = {"a": 2, "b": "abcde", "c": ["a", "b"]}
+        j2 = objects.GrapheneObject(j)
+        self.assertEqual(j, j2.data)
+        self.assertEqual(json.loads(j2.__str__()), j2.json())
+
+        a = objects.Array(['1000', 3, '@@000000013'])
+        j = {"a": a}
+        j2 = objects.GrapheneObject(j)
+        self.assertEqual(j, j2.data)
+        self.assertEqual(json.loads(j2.__str__()), j2.json())
+
+        a = types.Array(['1000', 3, '@@000000013'])
+        j = {"a": a}
+        j2 = objects.GrapheneObject(j)
+        self.assertEqual(j, j2.data)
+        self.assertEqual(json.loads(j2.__str__()), j2.json())