added filter functionality - all tests passing