added filter() and replace()