ws implementation