added test (under implementing)
adde Encoding test (decode after encoding)
remove test.go to implement more precise test (*_test.go)