ws implementations