Rewrote decoder using modified mapstructure decoder, much simpler now