mapper & reducer ~