API feels like a bad name for a type - should it not be WS?