basic support for maps

encoding only for now until interface issues are resolved. addresses #49