added ast_map and a default mapper function