added abstarct mapper