feat(filter): added basic filter implementation

Closes #151
Closes #144
Closes #147