Implements map filter reduce

See #52