add GenericMapper; add some tests