Start implementing maps

This is much more complicated that this simple commit. More commits to come.
Use destructing decode. Implement maps