add base of err data
rework parsing
add validation
remove DictGetter

add it back when spec 2.0 is ready
refactoring, make code easier to understand