add more test cases
add full support for arrays