rewrote the mapper funcs using expression trees