Change the interface of Codec<T>
Rewrite decoding process completely
Fill remained part of Atom parser
Reorder function
Use strict types for feed data