add map support, closes #19