added browser support with abstract message client