added reverse and filter-map