changed event filtering based on type assignability instead of equality, added tests for this