I have to agree about matrix. In fact I think at this point effort should be focused on bridging protocols to matrix instead of each different client implementing support for protocols by themselves. Then the client can only implement matrix support.