add toArray
add __toString