better filters, and now filters are chained by matrix multiplication